如何将document转为字符串_org.w3c.dom.Document对象与字符串互转

这篇博客介绍了如何在不修改现有框架的情况下,利用Java JDK自带的类将org.w3c.dom.Document对象转换为字符串,并反之将字符串转换回Document对象。过程中涉及到Transformer和DocumentBuilder的使用,以及处理中文编码问题。
摘要由CSDN通过智能技术生成

由于项目需要,需要我在现有的框架中去自己生成XML文档,而现有的框架中没有用到dom4j、jdom,而客户的要求是最好不好修改现有的框架,于是如下:

1. 通过JDK自带的类把org.w3c.dom.Document转化为字符串。然后再用文件输出流输出,或者直接将ByteArrayOutputStream内存流换成输出流。

/**

* XML org.w3c.dom.Document 转 String

*/

public static String docToString(Document doc) {

String xmlStr = "";

try {

TransformerFactory tf = TransformerFactory.newInstance();

Transformer t = tf.newTransformer();

t.setOutputProperty("encoding", "UTF-8");// 解决中文问题,试过用GBK不行

ByteArrayOutputStream bos = new ByteArrayOutputStream();

t.transform(new DOMSource(doc), new StreamResult(bos));

xmlStr = bos.toString();

} catch (TransformerConfigurationException e) {

e.printStackTrace();

} catch (TransformerException e) {

e.printStackTrace();

}

return xmlStr;

}

2. 利用jdk中自带的类将字符串转化为org.w3c.dom.Document。

/**

* String 转 XML org.w3c.dom.Document

*/

public static Document stringToDoc(String xmlStr) {

Document doc = null;

try {

xmlStr = new String(xmlStr.getBytes(),"UTF-8");

StringReader sr = new StringReader(xmlStr);

InputSource is = new InputSource(sr);

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

doc = builder.parse(is);

} catch (ParserConfigurationException e) {

e.printStackTrace();

} catch (SAXException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return doc;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值